EjbRequestScopeActivationInterceptor{ }
processInvocation{
  if (beanManager == null) {
    final WeldContainer weldContainer=(WeldContainer)currentServiceContainer().getRequiredService(weldContainerServiceName).getValue();
    beanManager=(BeanManagerImpl)weldContainer.getBeanManager();
  try {
    beanManager.getContext(RequestScoped.class);
    return context.proceed();
 catch (  ContextNotActiveException exception) {
  if (requestContext == null) {
    final Bean<?> bean=beanManager.resolve(beanManager.getBeans(EjbRequestContext.class,EjbLiteral.INSTANCE));
    final CreationalContext<?> ctx=beanManager.createCreationalContext(bean);
    requestContext=(EjbRequestContext)beanManager.getReference(bean,EjbRequestContext.class,ctx);
  try {
    requestContext.associate(context.getInvocationContext());
    requestContext.activate();
    return context.proceed();
  finally {
    requestContext.invalidate();
    requestContext.deactivate();
    requestContext.dissociate(context.getInvocationContext());
}
Factory{
  this.interceptor=new EjbRequestScopeActivationInterceptor(weldContainerServiceName);
}
create{ }
currentServiceContainer{
  return AccessController.doPrivileged(new PrivilegedAction<ServiceContainer>(){
      return CurrentServiceContainer.getServiceContainer();
}
run{
  return CurrentServiceContainer.getServiceContainer();
}
